package models;

import models.dados.BancoAdapter;
import models.dados.BancoTeste;
import models.dados.DAO;
import models.dados.DadoNaoEncontradoException;

public class LoginCliente {

	private DAO banco;

	public LoginCliente() {
		banco = BancoAdapter.getInstancia();
	}

	public boolean login(String nomeUsuario, String senha)
			throws UsuarioBloqueadoException, DadoNaoEncontradoException {
		Cliente cliente = banco.getClienteCadastrado(nomeUsuario);
		if (cliente == null) {
			throw new DadoNaoEncontradoException();
		}
		if (cliente.estaBloqueado()) {
			throw new UsuarioBloqueadoException();
		}
		return senha.equals(cliente.getSenha());
	}

	public void alterarSenha(String senhaAtual, String novaSenha, String usuario)
			throws DadoNaoEncontradoException, SenhaIncorretaException, UsuarioBloqueadoException {
		Cliente cliente = banco.getClienteCadastrado(usuario);
		if (!cliente.estaBloqueado()) {
			if (senhaAtual.equals(cliente.getSenha())) {
				cliente.setSenha(novaSenha);
				banco.alterarCliente(cliente);
			} else if (!cliente.getSenha().equals(senhaAtual)) {
				cliente.setTentativasLogin(cliente.getTentativasLogin() - 1);
				banco.alterarCliente(cliente);
				throw new SenhaIncorretaException();
			}
		}else{
			throw new UsuarioBloqueadoException();
		}

	}

	public void logout() {

	}

}
